// 对于上面有序的城市，如果其对应的南方城市的序号不满足递增，则一定会出现航道交叉，不满足条件
// 反之，则一定不会出现交叉的航道
// 因此，这题可以排序后用用最长递增子序列的方法来做
#include <iostream>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
const int N = 5010;
PII connect[N];
int f[N];

int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; ++i)
        cin >> connect[i].first >> connect[i].second;
    sort(connect, connect + n);
    int res = 0;
    for (int i = 0; i < n; ++i)
    {
        f[i] = 1;
        for (int j = 0; j < i; ++j)
            if (connect[j].second < connect[i].second)
                f[i] = max(f[i], f[j] + 1);
        res = max(res, f[i]);
    }
    cout << res << endl;
    return 0;
}